本篇擷取重點:
一、為什麼網址後方會出現 ?參數=參數值
你是否曾在瀏覽網頁作點選時,發現該網站網址後方出現, ?參數=參數值
下方找了一個例子幫助大家了解,這是Yahoo購物中心網站的一個頁面
我們可以注意到,在網址 (https://tw.buy.yahoo.com/rushbuy) 後方出現 ?id=8493074
這其實代表著,我們滑鼠點選的這個動作,其實也在作傳遞資訊的動作,而且是利用GET的傳遞方式來傳遞。
所以當我們點選商品的同時,其實作了三個動作,
==================================================================
貼心小補充:
ANS:是可以的,參數和參數間以**&**作相隔。
ANS:我們可以藉由encode編碼的方式,讓資料不會這麼容易在第一時間被解讀,但是需要保密的資料仍建議以另一種 傳遞方式POST來傳輸。
==================================================================
二、資料傳遞方式(GET / POST)比較
HTML Form 表單有兩種資料傳遞方式,分別為 GET 與 PSOT 這兩種,當網友填好表單資料並按下送出表單的按鈕之後,必須透過這兩種方式將資料送出到伺服器(Web Server),以下為兩種方式的 HTML Code 寫法,而在ASP.NET的Web Form下,會將程式碼編寫在.aspx。
一、GET 傳遞方式
<form action="接收資料的網址" method="get">
二、POST 傳遞方式
<form action="接收資料的網址" method="post">
無論是 GET 或 POST 都可以傳遞資料,但兩者在應用方面需要做選擇,先來看看他們的差異,就知道要怎麼選擇。
比較 | GET | POST |
---|---|---|
網址差異 | 網址會帶有 HTML Form 表單的參數與資料。 | 資料傳遞時,網址並不會改變。 |
資料傳遞量 | 由於是透過 URL 帶資料,所以有長度限制。 | 由於不透過 URL 帶參數,所以不受限於 URL 長度限制。 |
安全性 | 表單參數與填寫內容可在 URL 看到。 | 透過 HTTP Request 方式,故參數與填寫內容不會顯示於 URL。 |
嚴格來說一般的表單可以用 GET 直接傳遞,而不希望資料出現在網址上則必須用 POST 來處理,像是會員登入的帳號密碼。
但以 POST 來傳遞資料並不代表它安全,因為傳遞的還是明碼,只是沒有出現在網址列而己。較安全的作法是在網站上加 SSL憑證,用HTTPS來傳輸,但若還要更安全就要別的其他作法了。
參考資料:
https://www.wibibi.com/info.php?tid=235
POST雖然是由訊息本體 (要求的body部份) 傳遞資料,但並不代表它安全,因為傳遞的還是明碼,只是沒有出現在網址列而己。
較安全的作法是在網站上加 SSL,用HTTPS來傳輸,若要更安全就有別的作法了。
了解,正好這周要去上SSL憑證的課程XDD